// #ifndef VUE3
import Vue from 'vue'
import App from './App'

Vue.config.productionTip = false

App.mpType = 'app'

const app = new Vue({
	...App
})
app.$mount()
// #endif

// #ifdef VUE3
import { createSSRApp } from 'vue'
import App from './App.vue'
import store from './store/store.js'
// 导入 $http 对象
import { $http } from '@escook/request-miniprogram'

// 在 uni-app 项目中，可以把 $http 挂载到 uni 顶级对象之上，方便全局调用
uni.$http = $http

// 设置请求根路径
// $http.baseURL = 'https://www.uinav.com'
$http.baseURL = 'https://www.fastmock.site/mock/e44cfcd22e1bcf4320dae81a7009a636/demomine'

// 请求开始之前做一些事情
$http.beforeRequest = function(options) {
	uni.showLoading({
		title: '数据加载中...',
	})
	
	// 判断请求的是否为有权限的 API 接口
	if(options.url.indexof('/mine/') !== -1) {
		// 为请求头添加身份认证字段
		options.header = {
			// 字段的值可以直接从 vuex 中进行获取
			Authorization: store.state.m_user.token,
		}
	}
}

// 请求完成之后做一些事情
$http.afterRequest = function() {
	uni.hideLoading()
}

// 封装展示消息提示方法
uni.$showMsg = (title = '数据加载失败!', duration = 1500)=> {
	uni.showToast({
		title,
		duration,
		icon:'none'
	})
}

export function createApp() {
	const app = createSSRApp(App)
	app.use(store)
	return {
		app
	}
}
// #endif
